1
Da dati grezzi a schemi definiti
AI034Lesson 5
00:00

Immagina i dati grezzi come un flusso non etichettato: un territorio selvaggio della memoria. In Rust, iniziamo gestendo i dati come blocchi contigui (fette e array). Questa transizione dai dati grezzi a schemi definiti segna lo spostamento dalla memoria anonima a strutture con uno scopo.

1. Il livello "grezzo"

Le fette e gli array rappresentano i dati nella loro forma più semplice. La sicurezza è mantenuta tramite verifiche di proprietà al momento del compilatore piuttosto che un sovraccarico in fase di esecuzione. Usando il prestito (&) ci permette di creare "visualizzazioni" dei dati senza spostare i valori.

Stringa (Pila)ptr | lung | cap[ h e l l o _ w o r l d ]&str (Fetta)Prestito di una sottosequenza

2. Limiti semantici

Mentre le funzioni come first_word sono flessibili (accettando Stringa, &str, o letterali), raggiungono un limite semantico. Il compilatore sa che la memoria è sicura, ma non sa cosa rappresentino i dati rappresentano (ad esempio, un nome utente rispetto a un valore da sensore) fino a quando non li mappiamo a un Struct.

Principio architettonico: I concetti di proprietà, prestito e fette garantiscono la sicurezza della memoria nei programmi Rust al momento della compilazione, eliminando la necessità di un garbage collector.
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>